package com.eduadmin.service;

import com.eduadmin.entity.Exam;

import java.util.List;
import java.util.Map;
/**
 * 基础数据-考试表业务接口
 * */
public interface IExamService {
    /**
     * Author@zlc
     *使用角色：管理员。
     * 功能模块：登录模块，数据维护-管理统计报表
     * 功能：获取所有的考试记录
     * 参数：无
     **/
    List<Exam> getAllExam();
    /**
     * Author@zlc
     * 使用角色：管理员。
     * 功能模块：登录模块，数据维护-管理统计报表
     * 功能：获取指定名称的考试记录，返回考试记录列表。
     *      （注：根据考试名称查询，返回的应该是列表（新“考试表”中，单纯的考试名称不再唯一）
     * 参数：String examName
     **/
    List<Exam> getExamByExamName(String examName);
    /**
     * Author@zlc
     * 使用角色：管理员。
     * 功能模块：登录模块，数据维护-管理统计报表
     * 功能：根据（年级，学期，考试名称）查找对应的考试记录（“年级+学期+考试名称”是唯一值）
     * 参数：Map<String,Object> paraMap
     **/
    Exam getExamByParams(Map<String,Object> paraMap);
    /**
     * Author@hgm
     * 使用角色：管理员。
     * 功能模块：数据维护-导入基础数据
     * 功能：批量插入考试信息
     * 参数：List<Exam> exams
     **/
    int addExams(List<Exam> exams);
    /**
     * Author@hgm
     * 使用角色：管理员。
     * 功能模块：数据维护-导入基础数据
     * 功能：获取所有考试信息 分页显示
     * 参数：(Map<String, Object> paraMap
     **/
    List<Exam> getAllExams(Map<String, Object> paraMap);
    /**
     * Author@hgm
     * 使用角色：管理员。
     * 功能模块：数据维护-管理基础数据
     * 功能：获取总数
     * 参数：(Map<String, Object> paraMap
     **/
    Long getAllTotal(Map<String, Object> paraMap);
    /**
     * Author@hgm
     * 使用角色：管理员。
     * 功能模块：数据维护-管理基础数据
     * 功能：增加考试
     * 参数：Exam exam
     **/
    int newAddExam(Exam exam);
    /**
     * Author@hgm
     * 使用角色：管理员。
     * 功能模块：数据维护-管理基础数据
     * 功能：更新考试
     * 参数：Exam exam
     **/
    void updateExam(Exam exam);
    /**
     * Author@hgm
     * 使用角色：管理员。
     * 功能模块：数据维护-管理基础数据
     * 功能：删除考试
     * 参数：Exam exam
     **/
    int deleteExam(String examIdString);
    /**
     * Author@hgm
     * 使用角色：管理员。
     * 功能模块：数据维护-管理基础数据
     * 功能：查询考试名称 判断唯一性
     * 参数：Exam exam
     **/
    Exam getExam(Exam exam);
}
